package com.settlement.system.model.query;

import com.baomidou.mybatisplus.annotation.TableField;
import com.settlement.system.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 用户分页查询对象
 *
 * @author haoxr
 * @since 2022/1/14
 */
@Schema
@Data
public class BillPageQuery extends BasePageQuery {

    @Schema(description = "表名")
    private String tableName;

    @Schema(description = "账单月份")
    private String billMonth;

    @Schema(description = "统一账单id")
    private String keywords;

    /**
     * 汇总ID
     */
    @Schema(description = "汇总ID")
    private String summaryId;

    @Schema(description = "结算单类型")
    private String settlementType;

    // 店铺ID
    @Schema(description = "店铺ID")
    private Long storeId;
    private List<Long> storeIdList;
    /**
     * 记账项目
     */
    @Schema(description = "记账项目")
    private String billProject;

    // 原始账单ID
    @Schema(description = "导出ID")
    private List<String> ids;

    // 原始账单ID
    @Schema(description = "关联单号")
    private String linkNo;
    /**
     * 电商平台账单项目
     */
    @Schema(description = "电商平台账单项目")
    private String originalBillProject;

    /**
     * 电商平台账单项目列表
     */
    private List<String> originalBillProjectList;
    /**
     * 末级科目编码
     */
    @Schema(description = "末级科目编码")
    private String lastCode;
    /**
     * 记账状态
     */
    @Schema(description = "记账状态")
    private String status;
    /**
     * 对账平台电商平台名称
     */
    @Schema(description = "对账平台电商平台名称")
    private String commercePlatformStoreName;
    /**
     * 电商平台店铺编码
     */
    @Schema(description = "电商平台店铺编码")
    private String thirdSourceCode;

    @Schema(description = "业务日期查询开始日期")
    private String startDate;

    @Schema(description = "业务日期结束结束日期")
    private String endDate;

    /**
     * 辅助查询字段
     */
    @Schema(description = "表名列表")
    private List<String> tableNameList = new ArrayList<>();

    @Schema(description="开始月份")
    @NotBlank(message = "开始月份不能为空")
    private String startMonth;

    @Schema(description="结束月份")
    @NotBlank(message = "结束月份不能为空")
    private String endMonth;

    @Schema(description="出账日期开始日期")
    private LocalDateTime startBillDate;

    @Schema(description="出账日期结束日期")
    private LocalDateTime endBillDate;


    private List<String> auditIdList;
    // 分页查询用到的参数
    private List<String> idList;

}
